CREATE TABLE [dbo].[TDMOVI_CAJA]
(
[CO_EMPR] [dbo].[TD_VC_002] NOT NULL,
[CO_CAJA] [dbo].[TD_VC_008] NOT NULL,
[AA_CAJA] [dbo].[TD_VC_004] NOT NULL,
[MM_CAJA] [dbo].[TD_VC_002] NOT NULL,
[TI_MOVI] [dbo].[TD_VC_001] NOT NULL,
[NU_COMP_CAJA] [dbo].[TD_VC_008] NOT NULL,
[NU_SECU] [dbo].[TD_IN_001] NOT NULL CONSTRAINT [DF__TDMOVI_CA__NU_SE__5E3FF0B0] DEFAULT ((0)),
[TI_ENTI] [dbo].[TD_VC_001] NULL,
[CO_ENTI] [dbo].[TD_VC_020] NULL,
[TI_DOCU_ENTI] [dbo].[TD_VC_003] NULL,
[NU_DOCU_ENTI] [dbo].[TD_VC_020] NULL,
[CO_MONE_DOCU] [dbo].[TD_VC_003] NULL,
[FE_DOCU] [dbo].[TD_DT_001] NULL,
[IM_DOCU] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_DO__5F3414E9] DEFAULT ((0)),
[IM_SALD_DOCU] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_SA__60283922] DEFAULT ((0)),
[IM_SALD_CONV] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_SA__611C5D5B] DEFAULT ((0)),
[IM_DETA] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_DE__62108194] DEFAULT ((0)),
[IM_DETA_NEGA] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_DE__6304A5CD] DEFAULT ((0)),
[IM_CONV_DOCU] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_CO__63F8CA06] DEFAULT ((0)),
[IM_CONV_PART] [dbo].[TD_NU_016_004] NOT NULL CONSTRAINT [DF__TDMOVI_CA__IM_CO__64ECEE3F] DEFAULT ((0)),
[DE_OBSE] [dbo].[TD_VC_100] NULL,
[ST_CIER_DOCU] [dbo].[TD_VC_001_SINO] NULL CONSTRAINT [DF__TDMOVI_CA__ST_CI__65E11278] DEFAULT ('N'),
[CO_LIQU] [dbo].[TD_VC_020] NULL,
[NU_RECI_COBR] [dbo].[TD_VC_010] NULL,
[FE_RECI_COBR] [dbo].[TD_DT_001] NULL,
[FE_VENC] [dbo].[TD_DT_001] NULL,
[FA_CAMB_EXTR] [dbo].[TD_NU_015_006] NULL,
[FE_PROG] [dbo].[TD_DT_001] NULL,
[NU_SECU_PRPA] [dbo].[TD_IN_001] NULL CONSTRAINT [DF__TDMOVI_CA__NU_SE__67C95AEA] DEFAULT ((0)),
[TI_MOVI_OPER] [dbo].[TD_VC_001] NULL,
[NU_CORR_COMP] [dbo].[TD_VC_020] NULL,
[CO_CNTA_EMPR] [dbo].[TD_VC_020] NULL,
[CO_ORDE_SERV] [dbo].[TD_VC_020] NULL,
[CO_SUBR] [dbo].[TD_VC_003] NULL,
[CO_USUA_CREA] [dbo].[TD_VC_008_USUA] NOT NULL CONSTRAINT [DF__TDMOVI_CA__CO_US__68BD7F23] DEFAULT (suser_sname()),
[FE_USUA_CREA] [dbo].[TD_DT_001_SIST] NOT NULL CONSTRAINT [DF__TDMOVI_CA__FE_US__69B1A35C] DEFAULT (getdate()),
[CO_USUA_MODI] [dbo].[TD_VC_008_USUA] NOT NULL CONSTRAINT [DF__TDMOVI_CA__CO_US__6AA5C795] DEFAULT (suser_sname()),
[FE_USUA_MODI] [dbo].[TD_DT_001_SIST] NOT NULL CONSTRAINT [DF__TDMOVI_CA__FE_US__6B99EBCE] DEFAULT (getdate())
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE TRIGGER [dbo].[TD_TDMOVI_CAJA_D01] ON [dbo].[TDMOVI_CAJA] FOR DELETE
/*---------------------------------------------------------*/
/*---- Empresa              : OFISIS S.A.              ----*/
/*---- Cliente              : OFISIS S.A.              ----*/
/*---- Sistema              : OFITESO                  ----*/
/*---- M½dulo               : Empresa                  ----*/
/*---- Programa             : Trigger                  ----*/
/*---- Script               : TRIGGERS_TDMOVI_CAJA.SQL ----*/
/*---- Nombre TR            : TD_TDMOVI_CAJA_D01       ----*/
/*---- Desarrollado por     : Carlos Marquez Escobar   ----*/
/*---- Fecha Creaci½n       : 14/04/2004               ----*/
/*---- Base de Datos        : SQL_Server               ----*/
/*---- Versi½n              : 8.0                      ----*/
/*---- Invoca a SP          :                          ----*/
/*---------------------------------------------------------*/
/*---- Modificado 1 por     :                          ----*/
/*---- Fecha Modificaci½n   :                          ----*/    
/*---- Detalle Modificacicn :                          ----*/  
/*---------------------------------------------------------*/
/*---- Comentarios: Anula Prestamos en Planillas      ----*/
/*----              x Vta a Trabajadores               ----*/
/*----                                                 ----*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
/*---- Drop TRIGGER TD_TDMOVI_CAJA_D01                 ----*/
/*---- Grant All On TD_TDMOVI_CAJA_D01 to PUBLIC       ----*/
/*---------------------------------------------------------*/
NOT FOR REPLICATION  

---With Encryption 

As
Begin
  Declare

	@VSTI_SOLI_PRES		TD_VC_003,
	@VSDE_TIPO_SOLI		TD_VC_050,
	@VSCO_GRUP_CTCT		TD_VC_003,
	@VSCO_ENTI		TD_VC_003,
	@VSST_COBR_INTE		TD_VC_001,
	@VSST_CAPI_INTE		TD_VC_001,
	@VSST_COBR_IGVS		TD_VC_001,
	@VSST_REST_PPEN		TD_VC_001,
	@VSST_COBR_GRAC		TD_VC_001,
	@VNNU_PERI_GRAC		TD_IN_001,
	@VNPL_MINI_PTMO		TD_IN_001,
	@VNTM_SERV_MINI		TD_IN_001,
	@VSCO_TIPO_TOPE		TD_VC_003,
	@VNIM_TOPE			TD_NU_016_004,
	@VSCO_FORM_DCTO		TD_VC_003,
	@VNNU_CUOT			TD_IN_001,
	@VSCO_TASA_INTE		TD_VC_003,

	@VNNU_CORR_SOLI		TD_IN_001,

	@VSST_LLEN_CERO		TD_VC_001_SINO,
	@VNNU_LONG_CODI		TD_IN_001,
--- Docus --
	@VSCO_CLIE			TD_VC_020,

	@VSCO_TIPO_DOCU		TD_VC_003,
	@VSNU_DOCU_CLIE		TD_VC_020,
	@VSCO_UNID_CONC		TD_VC_003,
	@VSNU_ASTO			TD_VC_010,
	@VSCO_TIPO_OPER		TD_VC_003,
	@VSCO_COND_PAGO		TD_VC_003,
	@VDFE_VENC			TD_DT_001,
	@VDFE_EMIS			TD_DT_001,
	@VNFA_TIPO_CAMB		TD_NU_015_006,
	@VSCO_MONE			TD_VC_003,
	@VNIM_TOTA			TD_NU_016_004,
	@VNIM_PAGA			TD_NU_016_004,
	@VSTI_TASA			TD_VC_001,
	@VSCO_GRUP			TD_VC_008,

	@VSCO_TRAB			TD_VC_020,
	@VNIM_SOLI			TD_NU_016_004,

	@VNPC_ANUA			TD_NU_009_004,
	@VNPC_INTE_MENS			TD_NU_009_004,

	@VSCO_PLAN			TD_VC_003,
	@VSST_RRHH			TD_VC_001,
	@VSCO_COPA_PRES		TD_VC_003,
	@VNNU_LONG_COTR		TD_IN_001,
	@VSST_FILL_TRAB		TD_VC_001,


	@CSCO_EMPR			TD_VC_002,
	@CSCO_CAJA			TD_VC_008,
	@CSAA_CAJA			TD_VC_004,
	@CSMM_CAJA			TD_VC_002,
	@CSTI_MOVI			TD_VC_001,
	@CSNU_COMP_CAJA			TD_VC_008,
	@CNNU_SECU_CAJA			TD_IN_001,

	@CSTI_ENTI			TD_VC_001,
	@CSCO_ENTI			TD_VC_020,
	@CSTI_DOCU_ENTI		TD_VC_003,
	@CSNU_DOCU_ENTI		TD_VC_020,
	@CSNU_CORR_SOLI		TD_VC_008


  Declare CT_TDMOVI_CAJA_I01 Cursor
  For
  Select CO_EMPR, CO_CAJA, AA_CAJA, MM_CAJA, TI_MOVI, NU_COMP_CAJA, NU_SECU,
	TI_ENTI, CO_ENTI,TI_DOCU_ENTI, NU_DOCU_ENTI , NU_RECI_COBR
  From Deleted
  
  Open  CT_TDMOVI_CAJA_I01
  Fetch CT_TDMOVI_CAJA_I01 Into
	@CSCO_EMPR, @CSCO_CAJA, @CSAA_CAJA, @CSMM_CAJA, @CSTI_MOVI, @CSNU_COMP_CAJA, @CNNU_SECU_CAJA,
	@CSTI_ENTI, @CSCO_ENTI,	@CSTI_DOCU_ENTI,	@CSNU_DOCU_ENTI, @CSNU_CORR_SOLI

  -- Obtiene los Datos del Parametro Tesoreria --
  Select 	@VSST_RRHH =	IsNull(ST_RRHH,'N')	,
		@VSCO_COPA_PRES =	CO_COPA_PRES
  From TMPARA_TESO
  Where
	CO_EMPR = @CSCO_EMPR  

  While @@Fetch_Status = 0 And @VSST_RRHH = 'S'    ---- Si no Tiene Estatus de RR.HH No ejecuta Nada
  Begin
	If @@Fetch_Status < 0
	Begin
		Close CT_TDMOVI_CAJA_I01
		Deallocate CT_TDMOVI_CAJA_I01
	End

      -- Obtiene los Datos del Documentos Solicitud para la inserci½n --
	Select 	@VSCO_CLIE =	CO_CLIE	,
			@VSCO_TIPO_DOCU	=	CO_TIPO_DOCU,
			@VSNU_DOCU_CLIE	=	NU_DOCU_CLIE,
			@VSCO_UNID_CONC	=	CO_UNID_CONC,
			@VSNU_ASTO	=	NU_ASTO,
			@VSCO_TIPO_OPER	=	CO_TIPO_OPER,
			@VSCO_COND_PAGO	=	CO_COND_PAGO,
			@VDFE_VENC	=	FE_VENC,
			@VDFE_EMIS	=	FE_EMIS,
			@VNFA_TIPO_CAMB	=	FA_TIPO_CAMB,
			@VSCO_MONE	=	CO_MONE,
			@VNIM_TOTA	=	IM_TOTA,
			@VNIM_PAGA	=	IM_PAGA
	From TMDOCU_CLIE
	Where
		CO_EMPR = @CSCO_EMPR  And
		CO_CLIE = @CSCO_ENTI  And
		CO_TIPO_DOCU = @CSTI_DOCU_ENTI  And
		NU_DOCU_CLIE = @CSNU_DOCU_ENTI  


	If @VSCO_COND_PAGO = @VSCO_COPA_PRES
	Begin

		Select @VSST_FILL_TRAB = ST_LLEN_CERO, 
			  @VNNU_LONG_COTR = NU_LONG_CODI
		From TDCODI_AUXI
		Where CO_ATRI_AUXI = 'CO_TRAB'

	      -- Obtiene el Codigo de Trabajador en Base al Codigo de Cliente --		
		If @VNNU_LONG_COTR = Len(@CSCO_ENTI)
			Begin
				Select @VSCO_TRAB = '0' + SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )
			End
		Else if @VNNU_LONG_COTR < Len(@CSCO_ENTI)
			Begin
				Select @VSCO_TRAB = RighT(@CSCO_ENTI, @VNNU_LONG_COTR )
			End
		Else
			Begin
				Select @VSCO_TRAB = Replicate('0', @VNNU_LONG_COTR - Len (SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )) ) +  SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )
			End


	      -- Planilla pertenece el Trabajador --
		Select @VSCO_PLAN = t1.CO_PLAN 
		From TMTRAB_EMPR t1 
		Where t1.CO_TRAB = @VSCO_TRAB And
			 t1.CO_EMPR = @CSCO_EMPR



	      -- Tipo de Solicitud de Prestamo para ese trabajador --
		Select @VSTI_SOLI_PRES = TI_SOLI_PRES
		From TTTISO_PRPL
		Where CO_EMPR = @CSCO_EMPR And
			 CO_PLAN = @VSCO_PLAN		


	      -- Actualiza la  Maestra Solicitud de Prestamos, y Detalle Del Documento Generado  --	
		Update TMSOLI_PRES
		Set 	  TI_SITU = 'ANU' ,
			  CO_USUA_MODI = substring(suser_sname(),1,8),
			  FE_USUA_MODI = Getdate()
		Where
			CO_TRAB = @VSCO_TRAB And  
			CO_EMPR = @CSCO_EMPR And  
			TI_SOLI_PRES = @VSTI_SOLI_PRES  And  
			NU_CORR_SOLI = @CSNU_CORR_SOLI


	      -- Actualiza el Detalle De las Cuotas Generado  --	
		Update TDCUOT_SOLI
		Set 	  TI_SITU = 'ANU' ,
			  CO_USUA_MODI = substring(suser_sname(),1,8),
			  FE_USUA_MODI = Getdate()
		Where
			CO_TRAB = @VSCO_TRAB And  
			CO_EMPR = @CSCO_EMPR And  
			TI_SOLI_PRES = @VSTI_SOLI_PRES  And  
			NU_CORR_SOLI = @CSNU_CORR_SOLI

	End


	Fetch CT_TDMOVI_CAJA_I01 Into
		@CSCO_EMPR, @CSCO_CAJA, @CSAA_CAJA, @CSMM_CAJA, @CSTI_MOVI, @CSNU_COMP_CAJA, @CNNU_SECU_CAJA,
		@CSTI_ENTI, @CSCO_ENTI,	@CSTI_DOCU_ENTI,	@CSNU_DOCU_ENTI, @CSNU_CORR_SOLI
  End
  Close CT_TDMOVI_CAJA_I01
  Deallocate CT_TDMOVI_CAJA_I01
End
/*-------------------------------------- Fin de Trigger --------------------------------------*/

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO

CREATE  TRIGGER [dbo].[TI_TDMOVI_CAJA_I01] ON [dbo].[TDMOVI_CAJA] FOR INSERT
/*---------------------------------------------------------*/
/*---- Empresa              : OFISIS S.A.              ----*/
/*---- Cliente              : OFISIS S.A.              ----*/
/*---- Sistema              : OFITESO                  ----*/
/*---- M½dulo               : Empresa                  ----*/
/*---- Programa             : Trigger                  ----*/
/*---- Script               : TRIGGERS_TDMOVI_CAJA.SQL ----*/
/*---- Nombre TR            : TI_TDMOVI_CAJA_I01       ----*/
/*---- Desarrollado por     : Carlos Marquez Escobar   ----*/
/*---- Fecha Creaci½n       : 14/04/2004               ----*/
/*---- Base de Datos        : SQL_Server               ----*/
/*---- Versi½n              : 8.0                      ----*/
/*---- Invoca a SP          :                          ----*/
/*---------------------------------------------------------*/
/*---- Modificado 1 por     : Carlos Marquez Escobar   ----*/
/*---- Fecha Modificaci½n   : 18/05/2004               ----*/    
/*---- Detalle Modificacicn : Parametrizacion x Caja   ----*/  
/*---------------------------------------------------------*/
/*---- Comentarios: Genera Prestamos en Planillas      ----*/
/*----              x Vta a Trabajadores               ----*/
/*----                                                 ----*/
/*---------------------------------------------------------*/
/*---------------------------------------------------------*/
/*---- Drop TRIGGER tI_TDMOVI_CAJA_I01                 ----*/
/*---- Grant All On tI_TDMOVI_CAJA_I01 to PUBLIC       ----*/
/*---------------------------------------------------------*/
NOT FOR REPLICATION  

As
Begin
  Declare

	@VSTI_SOLI_PRES		TD_VC_003,
	@VSDE_TIPO_SOLI		TD_VC_050,
	@VSCO_GRUP_CTCT		TD_VC_003,
	@VSCO_ENTI		TD_VC_003,
	@VSST_COBR_INTE		TD_VC_001,
	@VSST_CAPI_INTE		TD_VC_001,
	@VSST_COBR_IGVS		TD_VC_001,
	@VSST_REST_PPEN		TD_VC_001,
	@VSST_COBR_GRAC		TD_VC_001,
	@VNNU_PERI_GRAC		TD_IN_001,
	@VNPL_MINI_PTMO		TD_IN_001,
	@VNTM_SERV_MINI		TD_IN_001,
	@VSCO_TIPO_TOPE		TD_VC_003,
	@VNIM_TOPE			TD_NU_016_004,
	@VSCO_FORM_DCTO		TD_VC_003,
	@VNNU_CUOT			TD_IN_001,
	@VSCO_TASA_INTE		TD_VC_003,

	@VNNU_CORR_SOLI		TD_IN_001,
	@VSNU_CORR_SOLI		TD_VC_008,
	@VSST_LLEN_CERO		TD_VC_001_SINO,
	@VNNU_LONG_CODI		TD_IN_001,
--- Docus --
	@VSCO_CLIE			TD_VC_020,

	@VSCO_TIPO_DOCU		TD_VC_003,
	@VSNU_DOCU_CLIE		TD_VC_020,
	@VSCO_UNID_CONC		TD_VC_003,
	@VSNU_ASTO_DOCU		TD_VC_010,
	@VSNU_ASTO_CAJA		TD_VC_010,
	@VSCO_TIPO_OPER		TD_VC_003,
	@VSCO_COND_PAGO		TD_VC_003,
	@VDFE_VENC			TD_DT_001,
	@VDFE_EMIS			TD_DT_001,
	@VDFE_OPER			TD_DT_001,
	@VNFA_TIPO_CAMB		TD_NU_015_006,
	@VSCO_MONE			TD_VC_003,
	@VNIM_TOTA			TD_NU_016_004,
	@VNIM_PAGA			TD_NU_016_004,
	@VSTI_TASA			TD_VC_001,
	@VSCO_GRUP			TD_VC_008,

	@VSCO_PLAN			TD_VC_003,
	@VSST_RRHH			TD_VC_001,
	@VSCO_COPA_PRES		TD_VC_003,
	@VSST_VNTA_RRHH		TD_VC_001,
	@VSTI_OPNI_CARG		TD_VC_003,
	@VSTI_OPNI_ABON		TD_VC_003,

	@VSST_INTE_BACH		TD_VC_001,
	@VSST_ASTO_RESU		TD_VC_001,
	@VSCO_OPRC_CNTB		TD_VC_003,
	@VSCO_OPCN_CAJA		TD_VC_003,
	@VNNU_LONG_COTR		TD_IN_001,
	@VSST_FILL_TRAB		TD_VC_001,

	@VNPA_ANNO_DOCU		TD_IN_001,
	@VNPA_MESE_DOCU		TD_IN_001,
	@VNPA_ANNO_CAJA		TD_IN_001,
	@VNPA_MESE_CAJA		TD_IN_001,

	@VSCO_UNCO_CAJA		TD_VC_003,
	@VSCO_TIOP_CAJA		TD_VC_003,
	@VDFE_OPER_CAJA		TD_DT_001,


	@VSCO_TRAB			TD_VC_020,
	@VNIM_SOLI			TD_NU_016_004,

	@VNPC_ANUA			TD_NU_009_004,
	@VNPC_INTE_MENS		TD_NU_009_004,

	@CSCO_EMPR			TD_VC_002,
	@CSCO_CAJA			TD_VC_008,
	@CSAA_CAJA			TD_VC_004,
	@CSMM_CAJA			TD_VC_002,
	@CSTI_MOVI			TD_VC_001,
	@CSNU_COMP_CAJA			TD_VC_008,
	@CNNU_SECU_CAJA			TD_IN_001,

	@CSTI_ENTI			TD_VC_001,
	@CSCO_ENTI			TD_VC_020,
	@CSTI_DOCU_ENTI			TD_VC_003,
	@CSNU_DOCU_ENTI			TD_VC_020

  Declare CT_TDMOVI_CAJA_I01 Cursor
  For
  Select	t2.CO_EMPR, t2.CO_CAJA, t2.AA_CAJA, t2.MM_CAJA, t2.TI_MOVI, t2.NU_COMP_CAJA, t2.NU_SECU,
		t2.TI_ENTI, t2.CO_ENTI, t2.TI_DOCU_ENTI, t2.NU_DOCU_ENTI,
		t1.CO_TIPO_OPER, t1.CO_UNID_CONC, t1.FE_OPER, t1.NU_COMP_CAJA		
  From TCMOVI_CAJA t1, Inserted t2 
  Where
  t1.CO_EMPR = t2.CO_EMPR And
  t1.CO_CAJA = t2.CO_CAJA And 
  t1.AA_CAJA = t2.AA_CAJA And
  t1.MM_CAJA = t2.MM_CAJA And
  t1.TI_MOVI = t2.TI_MOVI And
  t1.NU_COMP_CAJA = t2.NU_COMP_CAJA
  	


  Open  CT_TDMOVI_CAJA_I01
  Fetch CT_TDMOVI_CAJA_I01 Into
	@CSCO_EMPR, @CSCO_CAJA, @CSAA_CAJA, @CSMM_CAJA, @CSTI_MOVI, @CSNU_COMP_CAJA, @CNNU_SECU_CAJA,
	@CSTI_ENTI, @CSCO_ENTI,	@CSTI_DOCU_ENTI,	@CSNU_DOCU_ENTI,
	@VSCO_TIOP_CAJA,	@VSCO_UNCO_CAJA,	@VDFE_OPER_CAJA, @VSNU_ASTO_CAJA

  -- Obtiene los Datos del Parametro Tesoreria --
  Select 	@VSST_INTE_BACH = ST_INTE_BACH,
		@VSTI_OPNI_CARG = CO_TIPO_OPEG, 
		@VSTI_OPNI_ABON = CO_TIPO_OPER, 
		@VSST_RRHH =	IsNull(ST_RRHH,'N')	,
		@VSCO_COPA_PRES =	CO_COPA_PRES , 
		@VSST_VNTA_RRHH =	IsNull(ST_VNTA_RRHH,'N')	
  From TMPARA_TESO , TMCAJA
  Where
	TMPARA_TESO.CO_EMPR = @CSCO_EMPR  And
	TMPARA_TESO.CO_EMPR = TMCAJA.CO_EMPR And
	TMCAJA.CO_CAJA = @CSCO_CAJA 

  While @@Fetch_Status = 0 And @VSST_RRHH = 'S' And @VSST_VNTA_RRHH = 'S' ---- Si no Tiene Estatus de RR.HH No ejecuta Nada
  Begin
	If @@Fetch_Status < 0
	Begin
		Close CT_TDMOVI_CAJA_I01
		Deallocate CT_TDMOVI_CAJA_I01
	End



      -- Obtiene los Datos del Documentos Solicitud para la inserci½n --
	Select 	@VSCO_CLIE =	CO_CLIE	,
			@VSCO_TIPO_DOCU	=	CO_TIPO_DOCU,
			@VSNU_DOCU_CLIE	=	NU_DOCU_CLIE,
			@VSCO_UNID_CONC	=	CO_UNID_CONC,
			@VSNU_ASTO_DOCU	=	NU_ASTO,
			@VSCO_TIPO_OPER	=	CO_TIPO_OPER,
			@VSCO_COND_PAGO	=	CO_COND_PAGO,
			@VDFE_VENC	=	FE_VENC,
			@VDFE_EMIS	=	FE_EMIS,
			@VNFA_TIPO_CAMB	=	FA_TIPO_CAMB,
			@VSCO_MONE	=	CO_MONE,
			@VNIM_TOTA	=	IM_TOTA,
			@VNIM_PAGA	=	IM_PAGA
	From TMDOCU_CLIE
	Where
		CO_EMPR = @CSCO_EMPR  And
		CO_CLIE = @CSCO_ENTI  And
		CO_TIPO_DOCU = @CSTI_DOCU_ENTI  And
		NU_DOCU_CLIE = @CSNU_DOCU_ENTI  

	If @VSCO_COND_PAGO = @VSCO_COPA_PRES
	Begin


		Select @VSST_ASTO_RESU = ST_ASTO_RESU,
			  @VSCO_OPRC_CNTB = CO_OPRC_CNTB			
		From TMOPRC_RESU
		Where
		CO_EMPR = @CSCO_EMPR  And
		Exists ( Select CO_OPRC_CNTB From TDTIPO_OPER 
				Where TDTIPO_OPER.CO_EMPR = TMOPRC_RESU.CO_EMPR And
					 CO_TIPO_OPER = @VSCO_TIPO_OPER And
					 TDTIPO_OPER.CO_OPRC_CNTB = TMOPRC_RESU.CO_OPRC_CNTB)



		/* Generaci½n Voucher Contable  */
		If @VSST_INTE_BACH = 'N' AND @VSST_ASTO_RESU = 'N' AND 
			@VSCO_TIPO_OPER != @VSTI_OPNI_CARG AND @VSCO_TIPO_OPER != @VSTI_OPNI_ABON
	       Begin  
			/*------------Interfase Contable DOCUMENTOS  -----------------*/
			If Len ( Ltrim ( Rtrim (@VSNU_ASTO_DOCU) ) ) = 0
			Begin	
				EXEC SP_TTULTI_ASTO_Q01 @CSCO_EMPR, @VSCO_UNID_CONC, @VSCO_TIPO_OPER, @VDFE_EMIS, @VSNU_ASTO_DOCU OUTPUT

				Update TMDOCU_CLIE
				Set 		NU_ASTO = @VSNU_ASTO_DOCU, 
						ST_CONT = 'P',
						CO_USUA_MODI = substring(suser_sname(),1,8) , FE_USUA_MODI = GetDate()
				Where
					CO_EMPR = @CSCO_EMPR  And
					CO_CLIE = @CSCO_ENTI  And
					CO_TIPO_DOCU = @CSTI_DOCU_ENTI  And
					NU_DOCU_CLIE = @CSNU_DOCU_ENTI				
			End
			Else

				Update TMDOCU_CLIE
				Set 		ST_CONT = 'P',
						CO_USUA_MODI = substring(suser_sname(),1,8) , FE_USUA_MODI = GetDate()
				Where
					CO_EMPR = @CSCO_EMPR  And
					CO_CLIE = @CSCO_ENTI  And
					CO_TIPO_DOCU = @CSTI_DOCU_ENTI  And
					NU_DOCU_CLIE = @CSNU_DOCU_ENTI				

			Select	@VNPA_ANNO_DOCU = Year(@VDFE_EMIS) , 
					@VNPA_MESE_DOCU = Month(@VDFE_EMIS)


			Delete TXMVTO_CNTB
			Where CO_EMPR = @CSCO_EMPR
			And NU_CNTB_EMPR = 1
			And CO_UNID_CNTB = @VSCO_UNID_CONC
			And CO_OPRC_CNTB = @VSCO_OPRC_CNTB
			And NU_ANNO = @VNPA_ANNO_DOCU
			And NU_MESE = @VNPA_MESE_DOCU
			And NU_ASTO = '00000' + RIGHT(@VSNU_ASTO_DOCU, 5) 
	
			
			Exec SP_TTPROC_INTE_I01	@CSCO_EMPR, @CSCO_ENTI, @CSTI_DOCU_ENTI, @CSNU_DOCU_ENTI, @VNPA_ANNO_DOCU, @VNPA_MESE_DOCU, @VDFE_EMIS, @VSNU_ASTO_DOCU, 'I59', @VSCO_UNID_CONC, 'S'

	          If @@error <> 0
	          Begin
	            ---Rollback tran SP_TCMOVI_CAJA_I10
	            Close CT_TDMOVI_CAJA_I01
	            Deallocate CT_TDMOVI_CAJA_I01
	            Return
	          End
	
	
			Delete TTINTE_CNDE
			Where CO_EMPR = @CSCO_EMPR
			And NU_CNTB_EMPR = 1
			And CO_UNID_CNTB = @VSCO_UNID_CONC
			And CO_OPRC_CNTB = @VSCO_OPRC_CNTB
			And NU_ANNO      = @VNPA_ANNO_DOCU
			And NU_MESE      = @VNPA_MESE_DOCU
			And NU_ASTO      = @VSNU_ASTO_DOCU
			
			/*------------Interfase Contable CAJA      -----------------*/

			If Len ( Ltrim ( Rtrim (@VSNU_ASTO_CAJA) ) ) = 0
			Begin	


				EXEC SP_TTULTI_ASTO_Q01 @CSCO_EMPR, @VSCO_UNCO_CAJA, @VSCO_TIOP_CAJA, @VDFE_OPER_CAJA, @VSNU_ASTO_CAJA OUTPUT

				Update TCMOVI_CAJA
				Set 		NU_COMP_CAJA = @VSNU_ASTO_CAJA, 
						ST_CONT = 'P',
						CO_USUA_MODI = substring(suser_sname(),1,8) , FE_USUA_MODI = GetDate()
				Where
					CO_EMPR = @CSCO_EMPR And
					CO_CAJA = @CSCO_CAJA And 
					AA_CAJA = @CSAA_CAJA And
					MM_CAJA = @CSMM_CAJA And
					TI_MOVI = @CSTI_MOVI And
					NU_COMP_CAJA = @CSNU_COMP_CAJA

			End
			Else

				Update TCMOVI_CAJA
				Set 		ST_CONT = 'P',
						CO_USUA_MODI = substring(suser_sname(),1,8) , FE_USUA_MODI = GetDate()
				Where
					CO_EMPR = @CSCO_EMPR And
					CO_CAJA = @CSCO_CAJA And 
					AA_CAJA = @CSAA_CAJA And
					MM_CAJA = @CSMM_CAJA And
					TI_MOVI = @CSTI_MOVI And
					NU_COMP_CAJA = @CSNU_COMP_CAJA

			
			Select	@VNPA_ANNO_CAJA = Year(@VDFE_OPER_CAJA) , 
					@VNPA_MESE_CAJA = Month(@VDFE_OPER_CAJA)

						
			Select @VSCO_OPCN_CAJA = CO_OPRC_CNTB			
			From TMOPRC_RESU
			Where
			CO_EMPR = @CSCO_EMPR  And
			Exists ( Select CO_OPRC_CNTB From TDTIPO_OPER 
					Where TDTIPO_OPER.CO_EMPR = TMOPRC_RESU.CO_EMPR And
						 CO_TIPO_OPER = @VSCO_TIOP_CAJA And
						 TDTIPO_OPER.CO_OPRC_CNTB = TMOPRC_RESU.CO_OPRC_CNTB)

			Delete TXMVTO_CNTB
			Where CO_EMPR = @CSCO_EMPR
			And NU_CNTB_EMPR = 1
			And CO_UNID_CNTB = @VSCO_UNCO_CAJA
			And CO_OPRC_CNTB = @VSCO_OPCN_CAJA
			And NU_ANNO = @VNPA_ANNO_CAJA
			And NU_MESE = @VNPA_MESE_CAJA
			And NU_ASTO = '00000' + RIGHT(@VSNU_ASTO_CAJA, 5) 
	

			Exec SP_TTPROC_INTE_I01	@CSCO_EMPR, @CSCO_CAJA, Null, Null, @VNPA_ANNO_CAJA, @VNPA_MESE_CAJA, @VDFE_OPER_CAJA, @VSNU_ASTO_CAJA, 'I44', @VSCO_UNCO_CAJA, 'S'

	          If @@error <> 0
	          Begin
	            
	            Close CT_TDMOVI_CAJA_I01
	            Deallocate CT_TDMOVI_CAJA_I01
	            Return
	          End
	
	
			Delete TTINTE_CNDE
			Where CO_EMPR = @CSCO_EMPR
			And NU_CNTB_EMPR = 1
			And CO_UNID_CNTB = @VSCO_UNCO_CAJA
			And CO_OPRC_CNTB = @VSCO_OPCN_CAJA
			And NU_ANNO      = @VNPA_ANNO_CAJA
			And NU_MESE      = @VNPA_MESE_CAJA
			And NU_ASTO      = @VSNU_ASTO_CAJA
			

			/*-----------------------------------------------------------*/

	
		End
	

		Select @VSST_FILL_TRAB = ST_LLEN_CERO, 
			  @VNNU_LONG_COTR = NU_LONG_CODI
		From TDCODI_AUXI
		Where CO_ATRI_AUXI = 'CO_TRAB'


	      -- Obtiene el Codigo de Trabajador en Base al Codigo de Cliente --		
		If @VNNU_LONG_COTR = Len(@CSCO_ENTI)
			Begin
				Select @VSCO_TRAB = '0' + SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )
			End
		Else if @VNNU_LONG_COTR < Len(@CSCO_ENTI)
			Begin
				Select @VSCO_TRAB = RighT(@CSCO_ENTI, @VNNU_LONG_COTR )
			End
		Else
			Begin
				Select @VSCO_TRAB = Replicate('0', @VNNU_LONG_COTR - Len (SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )) ) +  SubString(@CSCO_ENTI, 2, Len(@CSCO_ENTI) - 1 )
			End

	      -- Planilla pertenece el Trabajador --
		Select @VSCO_PLAN = t1.CO_PLAN 
		From TMTRAB_EMPR t1 
		Where t1.CO_TRAB = @VSCO_TRAB And
			 t1.CO_EMPR = @CSCO_EMPR 			

	      -- Tipo de Solicitud de Prestamo para ese trabajador --
		Select @VSTI_SOLI_PRES = TI_SOLI_PRES
		From TTTISO_PRPL
		Where CO_EMPR = @CSCO_EMPR And
			 CO_PLAN = @VSCO_PLAN		
			

	      -- Carga los Parametros del Tipo de Solicitud para la inserci½n --
		Select	
			@VSCO_ENTI = CO_ENTI,		@VSCO_TIPO_TOPE = CO_TIPO_TOPE,
			@VNIM_TOPE = IM_TOPE,
			@VNNU_PERI_GRAC = NU_PERI_GRAC,	@VSCO_TASA_INTE = CO_TASA_INTE,
			@VNNU_CUOT = NU_CUOT,
			@VNPL_MINI_PTMO = PL_MINI_PTMO,		@VNTM_SERV_MINI = TM_SERV_MINI,
			@VSST_REST_PPEN = ST_REST_PPEN,
			@VSST_COBR_INTE = ST_COBR_INTE,	@VSST_COBR_IGVS = ST_COBR_IGVS,
			@VSST_COBR_GRAC = ST_COBR_GRAC,	@VSST_CAPI_INTE = ST_CAPI_INTE,
			@VSCO_ENTI = CO_ENTI		, 	@VSCO_FORM_DCTO = CO_FORM_DCTO
		From	TTTIPO_SOLI
		Where	TI_SOLI_PRES	= @VSTI_SOLI_PRES
		And	CO_EMPR	= @CSCO_EMPR
		
	
	      -- Tipo de Tasa  --	
		Select  @VSTI_TASA = TI_TASA
		From TMTASA_INTE
		Where CO_TASA_INTE = @VSCO_TASA_INTE
	
	      -- % de Tasa  --	
		Select	@VNPC_ANUA = IsNull(PC_ANUA, 0) 
		From		TDTASA_INTE	
		Where 	CO_TASA_INTE = @VSCO_TASA_INTE And
				FE_INIC_VIGE <= @VDFE_EMIS And
				FE_FINA_VIGE >= @VDFE_EMIS 
	
		If @VSTI_TASA = 'A'
			Select @VNPC_INTE_MENS = (Power( 1 + @VNPC_ANUA , 1/12 ) - 1  ) * 100
		else
			Select @VNPC_INTE_MENS = @VNPC_ANUA		
	
	      -- Importe Solicitado  --	
		Select @VNIM_SOLI = @VNIM_TOTA


	      -- Carga los Parametros del Tipo de Solicitud para la inserci½n --
		Select @VNNU_CORR_SOLI = Convert(Int, isnull( Max( NU_CORR_SOLI ),'0' )) + 1 
		From TMSOLI_PRES
		Where CO_EMPR = @CSCO_EMPR
	
		Select @VSST_LLEN_CERO = ST_LLEN_CERO, 
			@VNNU_LONG_CODI = NU_LONG_CODI
		From TDCODI_AUXI
		Where CO_ATRI_AUXI = 'NU_CORR_SOLI'
	
		If @VSST_LLEN_CERO = 'S'
		   Begin 		
			Select @VSNU_CORR_SOLI = Convert (Varchar(08), @VNNU_CORR_SOLI)
			Select @VSNU_CORR_SOLI = Replicate('0' , @VNNU_LONG_CODI - Len(@VSNU_CORR_SOLI)) + @VSNU_CORR_SOLI
		   End	
		Else
			Select @VSNU_CORR_SOLI = Convert (Varchar(08), @VNNU_CORR_SOLI)

	      -- Inserta Maestra Solicitud de Prestamos, y Detalle Del Documento Generado  --	
		Insert Into TMSOLI_PRES
				( CO_TRAB, 		CO_EMPR,		TI_SOLI_PRES, 		NU_CORR_SOLI,
				CO_MONE, 	 	NU_CUOT_SOLI,		IM_SOLI_PRES,		IM_APRO_PRES,
				IM_AMOR_PRES,		IM_CPTO_ADEL,		FE_SOLI_PRES, 		FE_APRO_PRES,
				DE_MOTI_PRES,		FE_DESE,		NU_ANNO_DESE,                 TI_SITU,		
				ST_COBR_INTE,		ST_COBR_INT1,		ST_COBR_IGVS,		ST_COBR_IGV1,
				ST_CAPI_INTE,		ST_CAPI_INT1,		ST_REST_PPEN,		ST_REST_PPE1,
				ST_COBR_GRAC,		ST_COBR_GRC1,		PL_MINI_PTMO,		PL_MINI_PTM1,
				TM_SERV_MINI,		TM_SERV_MIN1,		NU_PERI_GRAC,		NU_PERI_GRA1,
				CO_ENTI,		CO_ENT1,		CO_TIPO_TOPE,		IM_TOPE,
				CO_TIPO_TOP1,		IM_TOP1,		NU_CUOT,		NU_CUO1,
				CO_TASA_INTE,		PC_INTE_MENS,		CO_TASA_INT1,		PC_INTE_MEN1,
				CO_FORM_DCTO,		CO_FORM_DCT1,		DE_OBSE)
			Values	(@VSCO_TRAB, 	@CSCO_EMPR,
				@VSTI_SOLI_PRES, 	@VSNU_CORR_SOLI,
			
				@VSCO_MONE,   @VNNU_CUOT,
				@VNIM_SOLI,	@VNIM_SOLI,
				@VNIM_SOLI,	0,
			
				@VDFE_EMIS, 	@VDFE_EMIS,
				'PRESTAMOS POR VENTAS ',		@VDFE_EMIS,
				Year(@VDFE_EMIS),			'APR',
			
				@VSST_COBR_INTE,			@VSST_COBR_INTE,
				@VSST_COBR_IGVS,			@VSST_COBR_IGVS,
				@VSST_CAPI_INTE,			@VSST_CAPI_INTE,
			
				@VSST_REST_PPEN,			@VSST_REST_PPEN,
				@VSST_COBR_GRAC,			@VSST_COBR_GRAC,
				@VNPL_MINI_PTMO,			@VNPL_MINI_PTMO,
			
				@VNTM_SERV_MINI,			@VNTM_SERV_MINI,
				@VNNU_PERI_GRAC,			@VNNU_PERI_GRAC,
				@VSCO_ENTI,			@VSCO_ENTI,
			
				@VSCO_TIPO_TOPE,			@VNIM_TOPE,
				@VSCO_TIPO_TOPE,			@VNIM_TOPE,
				@VNNU_CUOT,	@VNNU_CUOT,
			
				@VSCO_TASA_INTE,			@VNPC_INTE_MENS,
				@VSCO_TASA_INTE,			@VNPC_INTE_MENS,
				@VSCO_FORM_DCTO,			@VSCO_FORM_DCTO,
			
				'INTERFASE TESORERIA PRESTAMOS ' + @CSCO_ENTI + '/' + @CSTI_DOCU_ENTI + '/' + @CSNU_DOCU_ENTI)
	
	      --  Inserta la distribucion de cuotas default -- 
		Insert Into TDDIST_SOLI (
					 CO_TRAB,			CO_EMPR,
					 TI_SOLI_PRES,		NU_CORR_SOLI,
					 CO_OPOR_DCTO,		NU_PORC)
			Select 	@VSCO_TRAB,		CO_EMPR,
					TI_SOLI_PRES,
					@VSNU_CORR_SOLI,
					CO_OPOR_DCTO,
					NU_PORC
			From TDTIPO_SOLI
			Where	CO_EMPR	 = @CSCO_EMPR
			And	TI_SOLI_PRES	 = @VSTI_SOLI_PRES
	
	      -- Inserta Historia de las cuotas / Guarda Movimiento Caja -- 
		Insert into TDCNTA_CORR (
				CO_TRAB,			CO_EMPR,
				TI_SOLI_PRES,		NU_CORR_SOLI,
				NU_CORR_ITEM,		CO_TIPO_MOVI,
				IM_CARG,			FE_MOVI,
				DE_OBSE, TI_SITU)
			values( 	
				@VSCO_TRAB,		@CSCO_EMPR,
				@VSTI_SOLI_PRES,	@VSNU_CORR_SOLI,
				'00000001',		'SOL',
				@VNIM_SOLI,		@VDFE_EMIS,
				@CSCO_CAJA + '/' + @CSAA_CAJA + '/' + @CSMM_CAJA + '/' +
				@CSTI_MOVI + '/' + @CSNU_COMP_CAJA + '/' + Convert(Varchar(10), @CNNU_SECU_CAJA),
				'ACT' )  
	
			Select @VSCO_GRUP = CO_GRUP 
			From TMUSUA
			Where	CO_USUA = substring(suser_sname(),1,8)
	
	
	      -- Llama al Store Procedure q genera las cuotas -- 
		EXEC ofiplan.dbo.SP_TDCUOT_SOLI_I01 @VSCO_TRAB, @CSCO_EMPR, @VSTI_SOLI_PRES, @VSNU_CORR_SOLI, @VSCO_GRUP
	
		Update TDMOVI_CAJA
		Set NU_RECI_COBR = @VSNU_CORR_SOLI , CO_USUA_MODI = substring(suser_sname(),1,8) , FE_USUA_MODI = GetDate()
		Where
			CO_EMPR = @CSCO_EMPR And
			CO_CAJA = @CSCO_CAJA And
			AA_CAJA = @CSAA_CAJA And
			MM_CAJA = @CSMM_CAJA And
			TI_MOVI = @CSTI_MOVI And
			NU_COMP_CAJA = @CSNU_COMP_CAJA And
			NU_SECU = @CNNU_SECU_CAJA
	End


	Fetch CT_TDMOVI_CAJA_I01 Into
		@CSCO_EMPR, @CSCO_CAJA, @CSAA_CAJA, @CSMM_CAJA, @CSTI_MOVI, @CSNU_COMP_CAJA, @CNNU_SECU_CAJA,
		@CSTI_ENTI, @CSCO_ENTI,	@CSTI_DOCU_ENTI,	@CSNU_DOCU_ENTI,
		@VSCO_TIOP_CAJA,	@VSCO_UNCO_CAJA,	@VDFE_OPER_CAJA, @VSNU_ASTO_CAJA
  End
  Close CT_TDMOVI_CAJA_I01
  Deallocate CT_TDMOVI_CAJA_I01
End
/*-------------------------------------- Fin de Trigger --------------------------------------*/

GO
ALTER TABLE [dbo].[TDMOVI_CAJA] WITH NOCHECK ADD CONSTRAINT [CK__TDMOVI_CA__ST_CI__66D536B1] CHECK NOT FOR REPLICATION (([ST_CIER_DOCU]='N' OR [ST_CIER_DOCU]='S'))
GO
ALTER TABLE [dbo].[TDMOVI_CAJA] ADD CONSTRAINT [PK__TDMOVI_C__728CABD37CBA562F] PRIMARY KEY CLUSTERED  ([CO_EMPR], [CO_CAJA], [AA_CAJA], [MM_CAJA], [TI_MOVI], [NU_COMP_CAJA], [NU_SECU]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[TDMOVI_CAJA] ADD CONSTRAINT [FK__TDMOVI_CAJA__5867E720] FOREIGN KEY ([CO_EMPR], [CO_CAJA], [AA_CAJA], [MM_CAJA], [TI_MOVI], [NU_COMP_CAJA]) REFERENCES [dbo].[TCMOVI_CAJA] ([CO_EMPR], [CO_CAJA], [AA_CAJA], [MM_CAJA], [TI_MOVI], [NU_COMP_CAJA])
GO
